package com.vanysoft.business.sys.dao;

import com.vanysoft.business.sys.entity.Menu;
import com.vanysoft.framework.config.database.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author qi_ma
 */
public interface MenuMapper extends BaseMapper<Menu> {
    /**
     * 根据用户ID查询所有菜单
     *
     * @param userId 用户ID
     * @return 菜单列表
     */
    List<Menu> selectByUserId(String userId);

    /**
     * 查找全部
     *
     * @param userId 用户ID
     * @return 菜单列表
     */
    List<Menu> selectAll(String userId);

    /**
     * 根据角色ID查询已分配的菜单ID集合
     *
     * @param roleId 角色ID
     * @return 菜单ID集合
     */
    List<String> selectIdsByRoleId(String roleId);

    /**
     * 根据角色ID和菜单ID数组删除
     *
     * @param roleId  角色ID
     * @param menuIds 菜单ID数组(为空删除该角色所有菜单)
     * @return 影响记录数
     */
    Integer deleteByRoleIdAndMenuIds(@Param("roleId") String roleId, @Param("menuIds") String[] menuIds);

    int deleteByRoleId(@Param("roleId") String roleId);

    int insertRoleMenu(@Param("roleId") String roleId, @Param("menuId") String menuId);
}
